{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.append('/projects/junxianh/tride/tride')\n",
    "\n",
    "import argparse\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from openai_sentiment_neuron import sst_binary, train_with_reg_cv, train_with_reg\n",
    "from utils import load_imdb\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def read_input(keys):\n",
    "    def parse_fname(fname):\n",
    "        x = '.'.join(fname.split('.')[:-1])\n",
    "        x = x.split('/')[-1]\n",
    "        x = x.split('.')\n",
    "\n",
    "        size = int(x[-2].split('size')[-1])\n",
    "        embed = int(x[-1].split('hid')[-1])\n",
    "\n",
    "        return size, embed\n",
    "\n",
    "    size, embed = parse_fname(keys)\n",
    "    keys = np.memmap(keys,\n",
    "                     dtype=np.float32,\n",
    "                     mode='r',\n",
    "                     shape=(size, embed))\n",
    "\n",
    "    return keys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = '../openai_sentiment_neuron/data'\n",
    "# train = '../hid_emb/sst/train.keys.layer-1.rpr_type_standard.size6920.hid1280.npy'\n",
    "# val = '../hid_emb/sst/test.keys.layer-1.rpr_type_standard.size1821.hid1280.npy'\n",
    "# test = '../hid_emb/sst/test.keys.layer-1.rpr_type_standard.size1821.hid1280.npy'\n",
    "\n",
    "train = '../hid_emb/sst/train.keys.layer-1.rpr_type_ffn_input_after_ln.size6920.hid1280.npy'\n",
    "val = '../hid_emb/sst/test.keys.layer-1.rpr_type_ffn_input_after_ln.size1821.hid1280.npy'\n",
    "test = '../hid_emb/sst/test.keys.layer-1.rpr_type_ffn_input_after_ln.size1821.hid1280.npy'\n",
    "\n",
    "# train = '../hid_emb/sst/train.keys.layer-2.rpr_type_standard.offset_0.size6920.hid1280.npy'\n",
    "# val = '../hid_emb/sst/test.keys.layer-2.rpr_type_standard.offset_0.size1821.hid1280.npy'\n",
    "# test = '../hid_emb/sst/test.keys.layer-2.rpr_type_standard.offset_0.size1821.hid1280.npy'\n",
    "\n",
    "# train = '../hid_emb/sst/train.keys.layer2.rpr_type_standard.offset_0.size6920.hid1280.npy'\n",
    "# val = '../hid_emb/sst/test.keys.layer2.rpr_type_standard.offset_0.size1821.hid1280.npy'\n",
    "# test = '../hid_emb/sst/test.keys.layer2.rpr_type_standard.offset_0.size1821.hid1280.npy'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "trX, vaX, teX, trY, vaY, teY = sst_binary(data)\n",
    "\n",
    "trXt = read_input(train)\n",
    "vaXt = read_input(val)\n",
    "teXt = read_input(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LibLinear]91.71 test accuracy\n",
      "0.100 regularization coef\n",
      "00179 features used\n"
     ]
    }
   ],
   "source": [
    "\n",
    "c = 0.1\n",
    "# c = 2\n",
    "# classification results\n",
    "full_rep_acc, c, nnotzero, model = train_with_reg(trXt, trY, vaXt, vaY, teXt, teY, c=c, verbose=1)\n",
    "print('%05.2f test accuracy'%full_rep_acc)\n",
    "print('%05.3f regularization coef'%c)\n",
    "print('%05d features used'%nnotzero)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Neuron (Feature) weight')"
      ]
     },
     "execution_count": 180,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1800x1080 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(25,15))\n",
    "plt.tick_params(axis='both', which='major', labelsize=20)\n",
    "plt.plot(range(len(model.coef_[0])), model.coef_.T)\n",
    "plt.xlabel('Neuron (Feature) Index', size=20)\n",
    "plt.ylabel('Neuron (Feature) weight', size=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [],
   "source": [
    "index=model.coef_[0].nonzero()[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = model.coef_[:, index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.])"
      ]
     },
     "execution_count": 183,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.00920174556142225"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.coef_[0, index[2]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "torch.save({'model': model}, 'sklearn_lgr_sst_layer-2_standard.pt')\n",
    "\n",
    "# model2 = torch.load('sklearn_model.pt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8764415156507414"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model2.score(teXt, teY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = '../openai_sentiment_neuron/data'\n",
    "train3 = '../hid_emb/sst/train.keys.layer-1.rpr_type_standard.offset_-1.size6920.hid1280.npy'\n",
    "val3 = '../hid_emb/sst/test.keys.layer-1.rpr_type_standard.offset_-1.size1821.hid1280.npy'\n",
    "test3 = '../hid_emb/sst/test.keys.layer-1.rpr_type_standard.offset_-1.size1821.hid1280.npy'\n",
    "\n",
    "trX, vaX, teX, trY, vaY, teY = sst_binary(data)\n",
    "\n",
    "trXt3 = read_input(train3)\n",
    "vaXt3 = read_input(val3)\n",
    "teXt3 = read_input(test3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7902251510159253"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.score(teXt3, teY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9165293794618341"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.score(teXt, teY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Reusing dataset imdb (../data/hf_data_cache/imdb/plain_text/1.0.0/e3c66f1788a67a89c7058d97ff62b6c30531e05b549de56d3ab91891f0561f9a)\n"
     ]
    }
   ],
   "source": [
    "# imdb classification\n",
    "trX, teX, trY, teY = load_imdb(cache_dir='../data/hf_data_cache')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = '../hid_emb/imdb/train.keys.layer-1.rpr_type_ffn_input_after_ln.offset_0.size25000.hid1280.npy'\n",
    "test = '../hid_emb/imdb/test.keys.layer-1.rpr_type_ffn_input_after_ln.offset_0.size25000.hid1280.npy'\n",
    "\n",
    "trXt = read_input(train)\n",
    "teXt = read_input(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25000"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(teY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LibLinear]86.87 test accuracy\n",
      "0.002 regularization coef\n",
      "00044 features used\n"
     ]
    }
   ],
   "source": [
    "c = 0.002\n",
    "# c = 2\n",
    "# classification results\n",
    "full_rep_acc, c, nnotzero, model = train_with_reg(trXt, trY, None, None, teXt, teY, c=c, verbose=1)\n",
    "print('%05.2f test accuracy'%full_rep_acc)\n",
    "print('%05.3f regularization coef'%c)\n",
    "print('%05d features used'%nnotzero)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.86612"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.score(teXt, teY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "torch.save({'model': model}, 'sklearn_lgr_imdb_layer-1_ffn_input_after_ln.pt')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tride",
   "language": "python",
   "name": "tride"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
